<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./vue.js"></script>
</head>

<body>
    <div id="app">
        <!-- 改变天气的监视 -->
        <button @click="ishot = !ishot">改变天气</button>
        <h3>{{ishot? '今天天气真热' : '今天天气真冷'}}</h3>
        <img :src="url" alt="" width="100px">

        <!-- 改变年龄的 -->
        <h1>{{person.name}}的年纪是{{person.age}}</h1>
        <button @click="person.age++">改变年纪</button>
    </div>

    <script>
        Vue.config.productionTip = false;
        const vm = new Vue({
            el: '#app',
            data() {
                return {
                    ishot: true,
                    url: '',
                    person:{
                        name:'liudehua',
                        age:19
                    }

                }
            },
            watch: {
                ishot: {
                    // wacth默认只能监视某个属性的变化,并不能在初始化的时候就执行handler函数
                    //可以配置immediate属性,让watch在初始化阶段就立即监视
                    immediate: true,
                    //接收两个参数，第一个时新的值，第二个是旧的值,都是一个boolean值
                    //根据布尔值返回需要的
                    handler(newv,old){
                        console.log(newv,old,'newv');
                        this.url = newv? "./re.webp" : "./leng.gif"
                    }

                },
                person:{    
                    //对一个对象或者数组监视的时候,内部发送改变并不能触发handler 需要开启深度监视
                    deep:true,
                    handler(){
                        alert('长大了')
                    }
                }
            }
        })
    </script>
</body>

</html>